/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"192E0B6D-0A09-42C9-950E-5FEA3DFBD8F5",variableType:4}
 */
var fanio = null;

/**
 * @type {Number}
 *
 * @properties={typeid:35,uuid:"4D85BAA8-8E97-4B8D-B432-DE113951CE23",variableType:4}
 */
var fmes = null;

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"AFCDD213-5B7F-42AC-BCCF-64CF66A8A21A"}
 * @AllowToRunInFind
 */
function onAction_con(event) {
	if (fanio == null)
	{
		globals.DIALOGS.showWarningDialog("Aviso","Debe ingresar un año","Ok")
		return
	}
	var $meses    = new Array()
	/** @type {JSFoundSet<db:/contable/varios>}*/
	var $varios = databaseManager.getFoundSet('contable','varios')
	var estado = $varios.find()
	if (estado == false)
	{
		globals.DIALOGS.showWarningDialog("Error","Error al hacer el Find","Ok")
	}
	$varios.tipo = 1
	$varios.search()
	$varios.sort("codigo asc")
	var $cantMes = databaseManager.getFoundSetCount($varios)
	
	for (var i = 1 ; i <= $cantMes ; i++)
	{
		$varios.setSelectedIndex(i)
		$meses  [i+1] = $varios.abrevia
	}
	$meses[0] = 'Cuenta'
	$meses[1] = 'Descripcion'
	var $ds = databaseManager.createEmptyDataSet(0,$meses)
	/** @type {JSFoundSet<db:/contable/asiento>}*/
	var $asiento = databaseManager.getFoundSet('contable','asiento')
	var estado = $asiento.find()
	if (estado == false)
	{
		globals.DIALOGS.showWarningDialog("Error","Error al hacer el Find","Ok")
		return
	}
	$asiento.leyenda = 'Por Diferencia de Conversion%'
	$asiento.anio   = fanio 
	var ctos = $asiento.search()
	if (ctos == 0)
	{
		globals.DIALOGS.showWarningDialog("Aviso","Sin movimientos","Ok")
		return 				
	}
	var ctos = databaseManager.getFoundSetCount($asiento)
	$asiento.sort("cuentas_id asc, mes asc")
	for (var i = 1 ; i <= ctos ; i++)
	{
		$asiento.setSelectedIndex(i)
		if (i == 1)
		{
			var $cuenta  = $asiento.cuentas_id
			var $texto   = $asiento.asiento_to_cuentas.descripcion
			var $formato = $asiento.asiento_to_cuentas.cuenta_formato 
			var saldos   = new Array()
			for (var j = 1 ; j <= 12 ; j++)
			{
				saldos[j] = null
			}
		}
		if ($cuenta == $asiento.cuentas_id)
		{
	    	saldos[$asiento.mes] += $asiento.impodol 
		}
		else
		{
			var $reg = new Array($formato,$texto,saldos[1],saldos[2],saldos[3],saldos[4],saldos[5],saldos[6],saldos[7],saldos[8],saldos[9],saldos[10],saldos[11],saldos[12])			
	    	$ds.addRow($reg)
			var $cuenta  = $asiento.cuentas_id
			var $texto   = $asiento.asiento_to_cuentas.descripcion
			var $formato = $asiento.asiento_to_cuentas.cuenta_formato 			
			var saldos   = new Array()
			for (var j = 1 ; j <= 12 ; j++)
			{
				saldos[j] = null
			}    	
			saldos[$asiento.mes] = $asiento.impodol 
    	}      
	}
	var $reg = new Array($formato,$texto,saldos[1],saldos[2],saldos[3],saldos[4],saldos[5],saldos[6],saldos[7],saldos[8],saldos[9],saldos[10],saldos[11],saldos[12])			
	$ds.addRow($reg)
	var frm = solutionModel.getForm('dif_conversion_anodet')
	var $tipos = new Array(JSColumn.TEXT,JSColumn.TEXT,JSColumn.NUMBER,JSColumn.NUMBER,JSColumn.NUMBER,JSColumn.NUMBER,JSColumn.NUMBER,JSColumn.NUMBER,JSColumn.NUMBER,JSColumn.NUMBER,JSColumn.NUMBER,JSColumn.NUMBER,JSColumn.NUMBER,JSColumn.NUMBER)
	var dSource = $ds.createDataSource('Conversion',$tipos)
	frm.dataSource = dSource
	forms.dif_conversion_anodet.controller.sort("cuenta asc")
	forms.dif_conversion_anodet.controller.recreateUI()
	elements.tabs_220.removeAllTabs()
	elements.tabs_220.addTab(forms.dif_conversion_anodet)
	
	return
}

/**
 * @properties={typeid:24,uuid:"23488D3E-7086-4D2B-9B9D-8414FBC6C816"}
 */
function csv()
{
	globals.gExportaExcel("dif_conversion_anodet", null, 'csv')
}

/**
 * @properties={typeid:24,uuid:"2879E9A3-5D39-43DD-98CA-ABA6834A2943"}
 */
function xls()
{
	globals.gExportaExcel("dif_conversion_anodet", null, 'xls')
}

/**
 * Callback method for when form is shown.
 *
 * @param {Boolean} firstShow form is shown first time after load
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"7A74F0B9-C3F9-4618-B037-C379D21CB0C7"}
 * @AllowToRunInFind
 */
function onShow(firstShow, event) {
	controller.loadRecords(null)
	fanio = globals.gAnio
}
